package com.czk.localdatetime;

import org.junit.Test;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Locale;

/**
 * @Author KD
 * @Date 2021/1/23 9:08
 */
public class ZoneIdDemo {


    /**
     * localDate和localTime构造localDateTime
     */
    @Test
    public void test1() {
        // 当前时区的时间
        // 日期
        LocalDate date = LocalDate.now();
        // 时间
        LocalTime now = LocalTime.now();
        LocalDateTime localDateTime = LocalDateTime.of(date, now);
        System.out.println("当前区域的时间" + localDateTime);
    }

    /**
     * 获取美国时间
     */
    @Test
    public void test2() {
        LocalDateTime now = LocalDateTime.now(ZoneId.of("America/New_York"));
        System.out.println("美国当前时间是" + now);
    }

    @Test
    public void test3() {
        // 计算时间
        LocalDateTime now = LocalDateTime.now();
        // 加时间
        LocalDateTime after = now.plusDays(5).plusHours(5).plusYears(5);
        // 计算时间差
        Period period = Period.between(now.toLocalDate(), after.toLocalDate());
        // 拿到时间差
        int days = period.getDays();
        // 拿到月份
        int months = period.getMonths();
        // 年份
        int years = period.getYears();
        // 五天
        System.out.println("相差天数" + days);
        // 同一个月 0
        System.out.println("相差月份" + months);
        // 5年
        System.out.println("相差年份" + years);
    }

    /**
     * 格式化
     */
    @Test
    public void test4(){
        LocalDateTime localDateTime = LocalDateTime.now(ZoneId.systemDefault());
        System.out.println(localDateTime);
        // 格式化输出 21-1-23 上午9:31
        System.out.println("格式化后中文环境输出："+ DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT,FormatStyle.SHORT).format(localDateTime));
        //
        String date="2021-01-23 09:23:15";
        // 解析date todo 怎么是大写的H？
        LocalDateTime parse = LocalDateTime.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.CHINA));
        System.out.println(parse);
    }
}
